<?php
/**
 * Created by PhpStorm.
 * User: yuanxr
 * Date: 2018/6/10
 * Time: 上午8:33
 */

namespace Utility\Extend;

/**********************************************************************************************************************
 * PHP功能加强或简化写法
 *
 * 1、session：统一使用此类的静态方法操作session
 * 2、str：统一字符串操作方法（解决兼容性等问题）
 * 3、arr：操作array的常用方法，因为无法使用array做为名称，所以，使用arr
 **********************************************************************************************************************/
/**********************************************************************************************************************
 * /session：统一使用此类的静态方法操作session
 **********************************************************************************************************************/
class ESession
{

    function __construct(){
        session_start();
    }

    /**
     * get
     *
     * @param string $name 需要获取的session名
     * @return string||false 如果此值不存在，或恒等于''[特别注意，是恒等于]，则返回false，否则返回其值
     */
    public function get(string $name)
    {
        if (isset($_SESSION[$name]) && $_SESSION[$name] !== '') {
            return $_SESSION[$name];
        }
        return false;
    }

    /**
     * set
     *
     * @param string $name session的key
     * @param mixed $value session的value
     * @return void 将value设置到session[key]之上
     */
    public function set(string $name, $value)
    {
        $_SESSION[$name] = $value;
    }

    /**
     * clear
     *
     * @param string $name 需要清除的session的名称
     * @return void 清空指定的session的值
     */
    public function clear(string $name)
    {
        unset($_SESSION[$name]);
    }

    /**
     * destory
     *
     * @return void 清空所有session，并在本页禁止再次使用session
     */
    public function destory()
    {
        session_destroy();
    }
}